package com.briup.day18;

import java.util.Scanner;

public class Test_Throw {
    //异常是抛开jvm的，jvm把异常输出到控制台
    public static void main(String[] args) throws Exception {
        System.out.println("hello");//hello可以输出
//        执行流程是这样的：
//JVM 启动后，先执行main方法中的代码 1：打印 “hello”（这一步完全正常，没有错误）。
//接着执行代码 2：尝试访问null数组的索引 0，此时 JVM 检测到空指针异常（NullPointerException）。
//异常发生后，JVM 会终止当前方法的执行流程，代码 3 不会被执行
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入用户名和密码");
        String username=sc.nextLine();
        String password=sc.nextLine();
        login(username,password);
    }
    //异常抛给main方法
    public static void login(String username,String password) throws Exception {
        if("root".equals(username)&&"root".equals(password)){//string类重写了equals方法
        //String比较地址的情况
        //✅ 自定义类没有重写equals()方法
        //✅ 数组对象（所有数组）
        //✅ 某些系统类如Thread、ClassLoader等
        //✅ 显式想要比较地址时（应该直接用 ==）
            System.out.println("登录成功！");
        }else{
            //可以添加异常到方法名字
            throw new Exception("用户名或密码错误");//其他也不能运行
//            throw new RuntimeException("用户名或密码输入错误");
        }
    }
}
